1. Technical Field
This disclosure generally relates to computer systems, and more specifically relates to locale objects that support software used in different languages and cultures.
2. Background Art
For computer software to be useful it must be capable of presenting information which reflects the users' cultural preferences, such as language and conventions, and allow users to interact with the software according to their preference. One way to account for different language and conventions is to customize software for a specific market, such as a geographical region or country. Such customized software is relatively inflexible in allowing users to alter the cultural or language preference of the software to meet particular needs. Therefore, in order to market software internationally, significant expense may be incurred in customizing the software for each individual international market and providing technical support and updates.
Great effort has been expended to make software “internationalized”, which means the software may be easily and readily adapted to different languages and cultures. An internationalized application program has no built-in assumptions with respect to the cultural preference of its users or the data it is to process or present. Rather, it allows the user to specify the language or conventions of the information used to interact with the application and the language or conventions in which the information is presented by the application.
The establishment of ISO/IEC 9945-1:1990 (IEEE Standard 1003.2-1990) Information Technology-Portable Operating System Interface (POSIX.™) Shell and Utilities provided a vehicle for the development of portable applications. IEEE Standard 1003.1 describes a set of basic system services for input/output, file system access, and process management to be used in the development of application programs. The standard also defines an interface accessible from the C programming language, which provides access to these services and establishes standard semantics and syntax. This interface allows application program developers to write portable applications in the C programming language.
In compliance with IEEE Standard 1003.1, IEEE Standard 1003.2 was developed to facilitate the internationalization of applications which did not require the application program developer to customize the application program for each cultural market. IEEE Standard 1003.2 defines a source code level interface to shell services and common utilities which is independent of IEEE Standard 1003.1. An extension of this standard is the User Portability Extension (UPE) (IEEE Standard 1003.2a) that addresses interactive terminal-oriented utilities such as full screen editors.
The IEEE Standards 1003.2 and 1003.2a are based on a “locale” model which provides the binding methodology for combining user preferences for language and conventions with the functions of the internationalized application program at run-time. The locale model describes the user's language or conventions to the application program and conveys it to the application program at run-time so that the data is processed and presented correctly according to the needs of the user. Locale objects are typically packaged with software to provide the needed support for different locales.
Some software includes a great number of different locale objects. For example, the C/C++ Run-Time Library for the z/OS operating system developed by IBM ships with over 2,000 different locale objects. Building and maintaining such a large number of locale objects requires significant cost and resources, especially when typical computing environments will only need a few locale objects.